home *** CD-ROM | disk | FTP | other *** search
/ Aminet 16 / Aminet 16 (1996)(GTI - Schatztruhe)[!][Dec 1996].iso / Aminet / misc / emu / QDOS2.lha / QLsource / ROMsrc / SYS / PROCS8_asm < prev    next >
Text File  |  1995-08-27  |  2KB  |  85 lines

  1. */beginfile PROCS8_asm
  2. ; --------------------------------------------------------------
  3. ; PROCS8_asm - BASIC bits
  4. ;        - last modified 27/08/95
  5. ; QDOS-Amiga sources by Rainer Kowallik
  6. ;    ...some changes by Mark J Swift
  7. ; --------------------------------------------------------------
  8. ; Get channel ID from BASIC channel #
  9. L065E6:
  10. CHNRTOID:
  11.     MOVEQ    #1,D1
  12. L065E8    MOVE.L    A5,-(A7)
  13.     CMPA.L    A3,A5
  14.     BLS.S    L0661C
  15.     BCLR    #7,1(A6,A3.L)
  16.     BEQ.S    L0661C
  17.     MOVE.L    A3,-(A7)
  18.     LEA    8(A3),A5
  19.     ANDI.B    #$0F,$01(A6,A3.L)
  20.     JSR    L05EC8(PC)    ;*/undomodify BSR L05EC8
  21.     BNE.S    L06642
  22.     MOVEQ    #3,D0
  23.     JSR    L05996(PC)    ;*/undomodify BSR L05996
  24.     BNE.S    L06642
  25.     MOVEA.L    (A7)+,A3
  26.     ADDQ.W    #8,A3
  27.     MOVE.W    0(A6,A1.L),D1
  28.     ADDQ.L    #2,BV_RIP(A6)    ;arith stack
  29. L0661C    MOVEA.L    (A7)+,A5
  30. L0661E    MOVE.L    D1,D0
  31.     MOVEA.L    BV_CHBAS(A6),A0    ;channel name
  32.     MULU    #$28,D0
  33.     ADDA.L    D0,A0
  34.     CMPA.L    BV_CHP(A6),A0    ;channel name running ptr
  35.     BGE.S    L0663E
  36.     MOVE.L    0(A6,A0.L),D0
  37.     BLT.S    L0663E
  38.     MOVEA.L    A0,A2
  39.     MOVEA.L    D0,A0
  40.     MOVEQ    #0,D0
  41.     RTS
  42. L0663E    MOVEQ    #-6,D0        ; Channel not found
  43.     RTS
  44. L06642:
  45.     ADDQ.W    #8,A7
  46.     RTS
  47. ; store Channel ID for identification by # as #(D1)
  48. L06646:
  49. STO_CHID:
  50.     MOVE.L    A0,-(A7)
  51.     BSR.S    L0661E
  52.     BEQ.S    L0669E
  53.     CMPA.L    BV_CHP(A6),A0    ; channel name running ptr
  54.     BLT.S    L06680
  55.     MOVE.L    D1,-(A7)
  56.     MOVE.L    A0,D1
  57.     ADDI.L    #$28,D1
  58.     SUB.L    BV_CHP(A6),D1    ; channel name running ptr
  59.                 ;*/undoinsert MOVEQ #$34,D2
  60.     JSR    L04E7A(PC)    ;*/undomodify BSR L04E84
  61.     MOVE.L    (A7)+,D1
  62.     BSR.S    L0661E
  63. L06668:
  64.     MOVEA.L    BV_CHP(A6),A2    ; channel name running ptr
  65.     ADDI.L    #$28,BV_CHP(A6)    ; channel name running ptr
  66.     MOVE.L    #$FFFFFFFF,0(A6,A2.L)
  67.     CMPA.L    A0,A2
  68.     BLT.S    L06668
  69. L06680:
  70.     MOVEA.L    A0,A2
  71.     MOVEQ    #$0A,D0
  72. L06684    CLR.L    0(A6,A0.L)
  73.     ADDQ.W    #4,A0
  74.     SUBQ.W    #1,D0
  75.     BGT.S    L06684
  76.     MOVEA.L    (A7)+,A0
  77.     MOVE.L    A0,0(A6,A2.L)
  78.     MOVE.W    #$50,$22(A6,A2.L)
  79.     MOVEQ    #0,D0
  80.     RTS
  81. L0669E    MOVEQ    #-8,D0        ; already exists error
  82.     RTS
  83. ; --------------------------------------------------------------
  84. ;*/endfile
  85.